package com.htl.exampro.question.pojo.query;

import com.htl.exampro.base.model.PageParams;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;


@Data
@EqualsAndHashCode(callSuper = true)
@Schema(name = "AnswerPageParam对象", description = "AnswerPageParam")
public class AnswerPageParam extends PageParams implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 答题ID
     */
    @Schema(description = "答题ID")
    @JsonProperty("AnswerId")
    private Long answerId;

    /**
     * 考生用户ID
     */
    @Schema(description = "考生用户ID")
    @JsonProperty("UserId")
    private Long userId;

    /**
     * 关联试题ID
     */
    @Schema(description = "关联试题ID")
    @JsonProperty("QuestionId")
    private Long questionId;

    /**
     * 考试ID
     */
    @Schema(description = "考试ID")
    @JsonProperty("ExamId")
    private Long examId;

    /**
     * 试卷ID
     */
    @Schema(description = "试卷ID")
    @JsonProperty("PaperId")
    private Long paperId;

    /**
     * 课程ID
     */
    @Schema(description = "课程ID")
    @JsonProperty("CourseId")
    private Long courseId;

    /**
     * 考生答案
     */
    @Schema(description = "考生答案")
    @JsonProperty("Answer")
    private String answer;

    /**
     * 得分
     */
    @Schema(description = "得分")
    @JsonProperty("Score")
    private Integer score;

    /**
     * 总分
     */
    @Schema(description = "总分")
    @JsonProperty("fullScore")
    private Integer fullScore;

    /**
     * 是否正确 0-错误 1-正确
     */
    @Schema(description = "是否正确 0-错误 1-正确")
    @JsonProperty("IsCorrect")
    private Byte isCorrect;

    /**
     * 创建人ID
     */
    @Schema(description = "创建人ID")
    @JsonProperty("CreatedPerson")
    private String createdPerson;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonProperty("CreatedTime")
    private LocalDateTime createdTime;

    /**
     * 修改人ID
     */
    @Schema(description = "修改人ID")
    @JsonProperty("UpdatedPerson")
    private String updatedPerson;

    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    @JsonProperty("UpdatedTime")
    private LocalDateTime updatedTime;
}
